package kr.hkit.powerjava.chapter08;

class A {
	
		
		/*System.out.println("aa()");*/
		
		/*System.out.println("aa - start");
		bb();
		System.out.println("aa - end");*/
		
	
	/*public void aa (int a) {	
	}
	public void aa (int b){
	} //컴파일러는 변수형만 보기때문에 같은 함수로 봄
	  // 둘중 하나 double이나 다른 형으로 바꿔 주면 오류 없어짐
*/	
	
	/*public void aa (int a) {
		System.out.println("aa(int a)");
	}
	
	public void aa(int a, int b){}
	public void aa(int a, int b, int c){}
	*/
	
	public void aa (int ...a){ 
		System.out.println("인수의 개수: " + a.length); //length를 쓰는건 결국은 배열이라는 뜻 
		for (int c: a){//여러개의 a중에 한개씩 알아서 끝까지 반복
			System.out.println(c+ " ");
		}
		System.out.println();
	} // end of method aa
	
	public void bb(String str, int...c) {
		System.out.println(str);
		System.out.println("인수의 개수: " + c.length);
		for (int d: c){
			System.out.println(d+ " ");
	} //end of method bb
	
//	public void aa (double b) {
//		System.out.println("aa(double b)");
//	}
//	

/*	
	public void bb() {
		System.out.println("bb - start");
		cc();
		System.out.println("bb - end");
	}

	public void cc() {

		System.out.println("cc - start");
		System.out.println("cc - end");
	}*/

}
} //end of class

public  class MethodCallTest {
	public static void main(String[] args) {
		A a = new A();
//		a.aa();
		//메소드 실행 순서
		
		a.bb("aa", 1,2,3,4);
		a.bb("aa", 1,2,3);
		a.bb("aa", 1,2);
		a.bb("aa", 1);
	
		
		a.aa();
		a.aa(3);
		
		a.aa(1,2);
		a.aa(1,2,3);
		a.aa(1,2,3,4);
		
//		a.aa(3.14); //이것이 메소드 오버로딩 
		
	}
}





